package learn;

import java.util.Hashtable;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 对于平常用的哈希表不是线程安全的于是java提供了线程安全的hashTable 和 ConcurrentMap
 * 区别
 * hashTable是对所有的方法直接加上synchronized，这样虽然方便但是效率低，
 * 而ConcurrentMap是针对桶级别加锁，对桶中储存的每个链表上锁，这样上锁的范围小了
 * 这样再不同线程中只要是访问不同的链表中的元素，那么就是并发执行的，这样效率就提升了很多
 */
public class hash {
    public static void main(String[] args) {
        Hashtable<Integer, Integer> map = new Hashtable<>();
        ConcurrentHashMap<Integer, Integer> map1 = new ConcurrentHashMap<>();
//        HashMap
    }
}
